Kite: Braided Parallelism for Heterogeneous Systems
نویسندگان
چکیده
Modern processors are evolving into hybrid, heterogeneous processors with both CPU and GPU cores used for general purpose computation. Several languages, such as BrookGPU, CUDA, and more recently OpenCL, have been developed to harness the potential of these processors. These languages typically involve control code running on a host CPU, while performance-critical, massively data-parallel kernel code runs on the GPUs. In this paper we present Kite, a rethinking of the GPGPU programming model for heterogeneous braided parallelism: a mix of task and data-parallelism that executes code from a single source efficiently on CPUs and/or GPUs. The Kite research programming language demonstrates that despite the limitations of today’s GPGPU architectures, it is still possible to move beyond the currently pervasive data-parallel models. We qualitatively demonstrate that opening the GPGPU programming model to braided-parallelism allows the expression of yetunported algorithms, while simultaneously improving programmer productivity by raising the level of abstraction. We further demonstrate Kite’s usefulness as a theoretical foundation for exploring alternative models for GPGPU by deriving task extensions for the C-based data-parallel programming language OpenCL.
منابع مشابه
Kite systems of order 8; embedding of kite systems into bowtie systems
This article consist of two parts. In the first part, we enumerate the kite systems of order 8; in the second part, we consider embedding kite systems into bowtie systems.
متن کاملCompiler Representations for Heterogeneous Processing
The emergence of heterogeneous parallel systems opens the possibility of higher performance for complex, heterogeneous applications. Unfortunately, heterogeneous parallel systems are even more complex to program than homogeneous parallel systems. Programmers should not have to handle all the added complexity of these systems. Instead, compilers should be extended to automatically handle as much...
متن کاملHPVM: A Portable Virtual Instruction Set for Heterogeneous Parallel Systems
We describe a programming abstraction for heterogeneous parallel hardware, designed to capture a wide range of popular parallel hardware, including GPUs, vector instruction sets and multicore CPUs. Our abstraction, which we call HPVM , is a hierarchical dataflow graph with shared memory and vector instructions. We use HPVM to define both a virtual instruction set (ISA) and also a compiler inter...
متن کاملScalable and Flexible heterogeneous multi-core system
Multi-core system has wide utility in today’s applications due to less power consumption and high performance. Many researchers are aiming at improving the performance of these systems by providing flexible multi-core architecture. Flexibility in the multi-core processors system provides high throughput for uniform parallel applications as well as high performance for more general work. This fl...
متن کاملArchitectural and Communication Issues in Designing Heterogeneous Parallel Systems with Optical Interconnection Manuscript under Review for Ieee Transactions on Computers. Architectural and Communication Issues in Designing Heterogeneous Parallel Systems with Optical Interconnection
This paper investigates architectural and communication issues in designing heterogeneous parallel systems. As the speed of processors and parallel systems keep on increasing over years, electronic interconnections like HIPPI and FDDI are reaching their limit to interconnect several parallel systems to provide heterogeneous parallel computing environment. This paper explores the suitability of ...
متن کامل